home *** CD-ROM | disk | FTP | other *** search
- ;ST Color Palette by Tom Hudson
- ;Habba Hippo 'C' modifications by John Kurvink
- ;Asm and link by typing ld color.o st512.o<ret>
- ;main changes were taking out equates and performing
- ;math in statements that used equates previously
- ;also since Movem,DC,DS aren't supported changes were made
- ;to those statements
-
-
- .global _go
- .global _stop
- .global _ctable
- .global _setcolor
- .global _setpallete
-
-
-
- .text
-
- ; call setup in supervisor mode
-
-
- _go:
-
- move.l #setup,-(sp)
- move.w #38,-(sp)
- trap #14
- addq.l #6,sp
- rts
-
- setup:
-
- move.w #$f888,$ff8240
-
-
- move.b $fffa09,hold1
- move.b $fffa07,hold2
- move.b $fffa13,hold3
- move.l $120,hold4
- move.l $118,keysave
- move.l $70,vbsave
-
- move.l #mykey,$118
- andi.b #$df,$fffa09
- andi.b #$fe,$fffa07
- move.l #hblank,$120
- ori.b #$01,$fffa07
- ori.b #$01,$fffa13
- move.l #vblank,$70
- rts
-
- _stop:
-
- move.l #restore,-(sp)
- move.w #38,-(sp)
- trap #14
- addq.l #6,sp
- rts
-
-
- restore:
-
- move.b hold1,$fffa09
- move.b hold2,$fffa07
- move.b hold3,$fffa13
- move.l hold4,$120
- move.l keysave,$118
- move.l vbsave,$70
- rts
-
- mykey:
-
- move #$2500,sr
- .word $4ef9
- keysave: .space 8
-
-
- hblank:
-
- movem.l #$ffff,-(sp) ;this is how to force the Movem.l to work using
- ;Hippo 'C' ??? Assembler
-
- move.w cix,d0
- move.l #_ctable,a0
- move.l 0(a0,d0.w),$ff8242
- move.l 4(a0,d0.w),$ff8246
- move.l 8(a0,d0.w),$ff824a
- move.l 12(a0,d0.w),$ff824e
- addi.w #16,cix
- movem.l (sp)+,#$ffff ;Hippo doesn't support movem properly so
- ;this was how I forced the intructions to execute
- bclr #0,$fffa0f
- rte
-
- vblank:
-
- move.b #0,$fffa1b
-
- verify:
-
- move.b #3,$fffa21
- cmpi.b #3,$fffa21
- bne verify
- move.b #8,$fffa1b
- move.l _ctable,$ff8242
- move.l _ctable+4,$ff8246
- move.l _ctable+8,$ff824a
- move.l _ctable+12,$ff824e
- move.w #16,cix
- addq.w #1,$ff8252
- .word $4ef9
- vbsave: .space 8
-
- _setcolor:
-
- link a6,#-6
- move.w 10(a6),(sp)
- move.w 8(a6),-(sp)
- move.w #7,-(sp)
- trap #14
- unlk a6
- rts
-
-
- _setpallete:
-
- link a6,#-6
- move.l 8(a6),(sp)
- move.w #6,-(sp)
- trap #14
- unlk a6
- rts
-
- .data
-
- cix: .space 2
-
- _ctable: .space 1024
-
- hold1: .space 2
- hold2: .space 2
- hold3: .space 2
- hold4: .space 8
- əəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəlastg != grnval[0]) || (lastb != bluval[0]))
- {
- v_hide_c(handle);
- vst_color(handle,11);
- v_gtext(handle,256,199,redval);
- vst_color(handle,14);
- v_gtext(handle,264,199,grnval);
- vst_color(handle,12);
- v_gtext(handle,272,199,bluval);
- v_show_c(handle,0);
- lastr=redval[0];
- lastg=grnval[0];
- lastb=bluval[0];
- }
- }
- }
-
- stop();
- setpallete(oldpal);
-
- v_clsvwk(handle);
-
- appl_exit();
-
- }
- əəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəə